Add Jablotron LF tag support (read, emulate, write to T55xx) - #917
Draft
midlan wants to merge 2 commits into
Draft
Add Jablotron LF tag support (read, emulate, write to T55xx)#917midlan wants to merge 2 commits into
midlan wants to merge 2 commits into
Conversation
Threads the Jablotron LF tag through the GUI alongside the other LF types. Jablotron is a 5-byte (40-bit) tag; its UID is shown both as hex and as the decimal card number (BCD-derived). - definitions.dart: scan/write/get/set-emu commands, TagType.jablotron, JablotronCard whose toViewableString() shows "<decimal> (<hex>)". - bridge/chameleon.dart: readJablotron, get/setJablotronEmulatorID, writeJablotronToT55XX. - general.dart: name, LF type list, getLFCardFromUID, 5-byte UID size, jablotronCardId() BCD helper. - read_card.dart: added to the LF scan chain. - write.dart + t55xx/write/base.dart: T55xx write with read-back verify. - slot edit/export + slot_manager: emulator ID get/set for slots. - test/jablotron_test.dart: BCD conversion, viewable string, round-trip. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
The slot edit dialog's save() dispatch was missing a Jablotron branch, so editing a slot to Jablotron and entering a UID never called setJablotronEmulatorID. The slot kept the factory-default id written by setDefaultDataToSlot (01 B6 69 00 00), which is what reopening the dialog then showed regardless of the entered value. Co-Authored-By: Claude Fable 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds support for the Jablotron LF tag, threaded through the GUI the same way the
other LF tags (EM410X, Viking, PAC, HID Prox, ioProx, IDTECK) are. Jablotron is a
5-byte (40-bit) tag; its ID is shown both as hex and as the decimal card number
(BCD-derived), matching the Python CLI output.
What's included
TagType.jablotron(180) and commandsJABLOTRON_SCAN(3019),JABLOTRON_WRITE_TO_T55XX(3020),JABLOTRON_SET_EMU_ID(5010),JABLOTRON_GET_EMU_ID(5011).JablotronCardwhose viewable string shows the decimal card number alongside thehex ID.
dialog, and export).
round-trip.
Firmware dependency
Requires ChameleonUltra firmware with Jablotron support (the device-side commands).
That support is currently in the firmware's
mainbranch (reachable via the app'sbleeding-edge firmware update) but is not yet in a tagged firmware release. On
firmware without Jablotron support the actions degrade gracefully — a scan returns
empty and the LF read chain moves on.
Capability gate — intentionally left unchanged
home.dart'sareCapabilitiesSupported()usessetIdteckEmulatorIDas a single"is the firmware recent enough" sentinel. It does not specifically probe for
Jablotron, so a firmware that has IDTECK but predates Jablotron would pass the check
yet still not support Jablotron. This is left as-is on purpose: the check only drives
a global, non-blocking "please update firmware" banner, and bumping the sentinel to a
Jablotron command would show that banner to everyone still on a pre-Jablotron
firmware. That's better sequenced alongside a tagged firmware release that includes
Jablotron. Happy to add the sentinel bump if a maintainer prefers.
Testing
Verified on Android (
1.3.0 (Build 4)):dialog — round-trips correctly (hex + decimal card number).
Still to test:
decimal card number